23

» WarCraft 3 / Звука смерти у юнита

Похожие вопросы:

ответ
Проверь, я удалил тебе это анимку через mdlvis

Удалял через эту программу
По поводу звука не подскажу, надо искать, но я бы попробовал найти ту модель где есть звук стрельбы при атаке и посмотреть как там сделано

23

» WarCraft 3 / Панель приказов

Похожие вопросы:

ответ
SсRealm, ,без пруфа эт фантазия, соряново. Если бы была карта, все бы уже сказали, как это делается.
ответ
Блин и ведь рылся же в блоге клампа в первую очередь.
А оказалось оно не в блоге =/
ответ
Добавить классификацию страж в редакторе обьектов и сделать триггер на отлов приказов юнита.
ответ
Карта из архива - patrol.w3x
ответ
Хз с чем связано, замечал такое при реплесе героя - если меню изучение способностей открыто, то оно открыто у вновь созданного героя, нужно убрать выбор у игрока и добавить выбор на героя снова.

23

» WarCraft 3 / Preload Exploit

Похожие вопросы:

ответ
никому не нужен этот хплоит, не в моде
ответ
Дата менеджер скачай, там все готовое и работает если ты так собрался сохранять данные...
ответ
Я тут не давно тему эту ковырял, для сохранения героя вам поможет
А то что показываете вы, сохраняет введённые в чат сообщения, никак не героя
ответ
ProximityCat:
Ну суть в том, что загруженную прелоадом информацию можно сохранить в кеш, а потом уже синхронизировать.

23

» WarCraft 3 / Модификации редактора

Похожие вопросы:

ответ
bladget, скорее всего (если у тебя Vista или W7 стоит), в старой папки остались "файлы совместимости", которые не удаляются просто так. В WoO много всякого мусора было...
ответ
Кажется проблему решили, ответ крылся в текстурах, скорее всего в типе сжатия Sequental JPEG при пресохранени с другим типом сжатия (Пересохранил текстуры в тга и обратно в блп) - проблема решилась (По крайней мере сейчас так кажется).
Из чего могу предположить, то при определенных обстоятельства Варик или система неадекватно воспринимает текстуры с этим типом сжатия и выпадает
ответ
Возможно, ты отключил UMSWE. Включи его в соответствующей вкладке и перезапусти редактор.

23

» WarCraft 3 / Инициализация карты

Похожие вопросы:

ответ
Была прям один в один ситуация. Игра крашица скорее всего от того, что что bounds выходит за пределы карты. Оставляй отступ от краев.
и даже не границы карты, а границы обзора вродебы ломают все

попробуй rect создать на карте, чтобы он был внутри границы обзора. И bounds выставляй по нему.
ответ
~8gabriel8:
Вроде работает, но не знаю, так ли у тебя работало ранее. Проверь. Касательно проблем с триггерами не уверен, но вроде бы видел триггеры с одинаковым названием на русском. На всякий случай изменил все названия триггеров с кириллицей на латиницу, так как проблемы с этим уже упоминали. В триггере инициализации было два события, что в итоге приводило бы к двойному срабатыванию, одно из них удалил. Также удалил несколько ретурнов, чтобы с одной стороны увидеть работоспособность триггеров, так удалил ретурн перед постановкой заданий в инициализации, с другой сомневался, что они корректно работают, а проверять было некогда, например, в цикле от 1 до 350 ретурн мог не пустить выполнение цикла дальше первого элемента. Но главное в том, что ты вводишь лишнии глобальные переменные вместо указателей (Triggering unit) или (Item being manipulated), причём их порой даже не используешь, просто устанавливаешь сначала, а в конце обнуляешь. Так не надо делать, пользуйся стандартными указателями на юнитов, типа (Triggering unit) или (Attacking unit), не удаляя или обнуляя их, а то только лишнюю нагрузку создаёшь для памяти, процессора и очереди операций. Обычно (Triggering player) по умолчанию является владельцем (Triggering unit), тоже используй сразу, а не плоди переменные. После удаления точки, не обнуляй её. А ещё попробуйте использовать какие-то оптимизаторы для карты, потому что её загрузка просто жесть - более 50 тысяч переменных для объектов редактор показывал) Только после оптимизации карта будет годна лишь для игры, а в редакторе не будет открываться.

Печатал уточнение и заснул)
Не указал, что вроде бы видел два триггера Безымянный триггер 002 или Безымянный триггер 005, одинаковые имена как раз могли быть причиной проблемы.

Самым лучшим комментарием считаю 17 от Hate.
ответ
Уже как задал вопрос вспомнил о статье на сайте
do
	local InitGlobalsOrigin = InitGlobals
	function InitGlobals()
        InitGlobalsOrigin()
        print("Инициализация")
    end
end
ответ
Спасибо всем за ответы.
PT153 подсказал в чем проблема.
Я использовал функции blizzard.j, но не вызвал в мейне call InitBlizzard()

23

» WarCraft 3 / Триггер

Похожие вопросы:

ответ
Вам сюда, господин хороший. Там есть ответы, практически, на все ваши вопросы.
ответ
спасибо, XGM Bot!
Нашел это - xgm.guru/p/blog-nvc123/ur1-3
ответ
Собственные попытки в студию, что не получается?
Напомним - ЭТО НЕ СТОЛ ЗАКАЗОВ, здесь задают вопросы про реализацию тех или иных вопросов, спрашивают про ошибки, оптмизацию, отдельные функции. Я не увидел в вашем вопросе ничего кроме невнятного описания механики способности, " вокргу кого то там огненные столбы возникают, и еще порча"...
ответ
Filius Dei, во вредные советы подъехали...
Русификатор очень поможет тем кто собрался ломануть чужую карту и сделать её мод, прям ваще жир...
Потом нубам вроде сударя не стоит бежать ломать чужую карту, чето там пытатся копировать - это все бесполезно, недавно был похожий вопрос - помогите взломать карту за вознаграждение, карту сломали - ну а дальше что? Он неспособен ничего сделать потому что просто не понимает как?
Играя в некую карту вы мните себя великими балансерами и картоделами, мол да чё там, шяс подправлю пару значений и все будет норм - нет не будет, это не так просто как может показаться, без понимания устройства карты и знания Jass вам нечего там делать, вы тупо ничего не сможете изменить, да даже скопировать и вставить!
Помните что без труда не выловишь и рыбку из пруда, т.е изи способов в 1 кнопку взять и запилить чужую карту так как вам хочется или вдруг стащить всех героев себе в карту нет, а уж теболее не случится так что вам кто то возьмет и все это сделает вам за спасибо...

23

» WarCraft 3 / Отмена способности

Похожие вопросы:

ответ
Pingvinromeo, проблема в том что ты фигню творишь
если спел применён в точку то точка есть
перемещение это 1 действие
за это время точка не исчезнет
короче пруфы того что не работает
ответ
Порядок строк ид приказа не сменить, это работает только у канала ибо это спец скилл для визуального эффекта. У морфов это работать не будет.
ответ
Очень просто, проверяем каст по приказу юза предмета и если цель неподходящая то дропаем предмет юниту под ноги, а потом заставляем подобрать его.
ответ
есть специальная функция на jass, которая называется MoveRect() или SetRect(). С помощью этих функций и перемещаете.
native MoveRectTo takes rect whichRect, real newCenterX, real newCenterY returns nothing
native SetRect takes rect whichRect, real minx, real miny, real maxx, real maxy returns nothing
ответ
~8gabriel8:
Например, есть направленный скилл - молоток горного короля, я заставляю триггерно нажать на способность и мне нужно через триггеры направить её на вражеского юнита (юнит уже лежит в специальной переменной)
Не нужно триггерно нажимать на способность, есть специальное действие для этого.
Действие Боевая единица - Issue order targeting on unit, там указываешь юнита со способностью, вражеского юнита в переменной и из списка приказов выбираешь способность Альянс (Горный Король) - Молот бурь. Если способность нестандартная, то указываешь в списке способность, на основе которой нестандартная сделана.

23

» WarCraft 3 / Скрыть миникарту.

Похожие вопросы:

ответ
Temak1, В константах нет такого пункта!
ответ
Ищи в редакторе объектов "пиктограмма на мини-карте" (или "нейтральное здание - значок на мини-карте") - это в редакторе войск.
Саму пиктограмму можно найти в игровом интерфейсе.
Это не скрывает надпись, но позволит добавить пиктограмму любому зданию.
Прикрепил бы скрины, но редактора поблизости нет.
ответ
Если у юнита есть способность рудника, то иконку не скрыть через РО. Есть функция альтернативной иконки на мини-карте. Она может быть только одна в карте. Импортируешь иконку с альфа-каналом (прозрачную):
SetAltMinimapIcon("war3mapImported\\InvisibleIcon.blp") -- .dds не видит
UnitSetUsesAltIcon(unit, true) -- принимает только созданного на карте юнита, не айди юнита из РО
-- всех юнитов можно перебрать через счетчик, например

Есть еще несколько баг репортов от игроков на форуме близзов о том, что этот параметр в РО не работает на версиях 1.32+:
ответ
Есть команда, которая задает границы карты, а также изменяет и размер отображения мини-карты
SetCameraBounds
Можно попробовать через GetLocalPlayer задать, но не знаю, будет ли десинк.
Или попробовать скрыть миникарту другим способом, только наверняка это будет на всех. поискать надо на хгм

если можно было бы достать рисунок мини карты - war3mapmap.blp. Обычно чтобы затемнить, то отключить просто импортируют рисунок с альфо-прозрачностью. Но это постоянные изменения, то есть оно будет у всех, чтобы динамично - я думаю, никак.

мини-карта - часть интерфейса,можно на рефордже можно отключить (это красивое решение, чем прятать так). это изучайте фреймы

23

» WarCraft 3 / Приоритет по атаке

Похожие вопросы:

ответ
Так ты дай юниту 2 атаки и глянь, какие он использует на какой дистанции.
ответ
~8gabriel8:
Попробуй ещё оставить крипов Нейтрально-враждебными или поставить под контроль назначенного игрока и триггерно в категории действий ИИ убрать у них контроль ИИ.
Вот тут Steal nerves кое-что потестировал:

23

» WarCraft 3 / Спавн юнитов из области в другую область

Похожие вопросы:

ответ
N7 Molot:
делаешь области примерно x1 на y1 (точка) у каждой декорации, когда приходишь фиксируешь эти точки через set = (центр точки декорации), после функция, которая добавляет БЕ (боевая единица), без русификатора функция "create" и по одной БЕ на каждую точку с ориентировкой на того кто входит в область (так же фиксируй позицию БЕ, которая входит в область), и после всего этого удаляй точки, которые зафиксированы на декор и на БЕ, которая вошла в область.

можно добавит ещё эффект появления на каждой точке у декора, будет красиво)
ответ
Отлавливаеш момент завершения улучшения и триггерно выдаеш такое-же улучшение тому чьи юниты.

23

» WarCraft 3 / Перенос имени на другую карту

Похожие вопросы:

ответ
Я сделал себе с этой карты, у меня все работает
Точно не помню какая из них, выбери ту где Келем бегаешь
ответ
Там и защиты то никакой нету, деоптимизатором прошёлся да и все, код редактируешь одтельно и вставляешь в уже подготовленную карту.
Вот опен карта, там все изи...

23

» WarCraft 3 / Буфер обмена

Похожие вопросы:

ответ
Вам сюда, господин хороший. Там есть ответы, практически, на все ваши вопросы.
ответ
Буфер игры - создать буфер с именем ...
Буфер игры - сохранить юнит как ...
Буфер игры - сохранить последний созданный буфер

Буфер игры - создать буфер с именем ...
Буфер игры - восстановить юнит из ... буфера
ответ
Вроде всегда лечилось сменой раскладки на русскую при копировании.

23

» WarCraft 3 / Сломался редактор

Похожие вопросы:

ответ
Решено. Удивительно, но карта открывается в новой версии редактора на патче 1.31. Сохранил в новом патче, воспользовался конвертером и все работает... Странно. Могу ли я что-то сломать таким способом?

Bergi_Bear, смогу))

Проблема и правда была в каменных подьемах, которые я пытался заменить. После их удаления на новом патче и конвертирование в 1.26 - все работает. Можно ли как-то удалять декорацию не открывая карту.

Проблема была в том, что каменному подъему был задан нестандартный цвет на миникарте.
ответ
Я не спец, и не уверен, но тут точно jassgenpack замешан, работаете ли вы в том же редакторе, и не меняли, ли вы какие нибудь настройки? А вообще, согласен с quq_CCCP
ответ
Проблема решена.Это было из-за модели. Углубляться в подробности не буду.
ответ
Как наверное больно если нету бэк-апа, надеюсь это будет уроком

23

» WarCraft 3 / Отследить удар рукой

Похожие вопросы:

ответ
Рассмотрим на примере модельки простого огра, у него есть анимация атаки slam и удар дубиной по земле
  1. Старт атаки
  2. Создаём упреждающий в области впереди героя (маркер, ну эффект ауры например), чтобы игрокам было понятно что скоро тут что-то произойдёт
  3. Проигрываем анимацию "attack slam" или нужную другую, для замаха дубиной, если надо больше и не хватает стандартной скосроти, замедляем скорость анимации
  4. Визуально подгадываем или упытным путём определяем время касания дубиной полна от 1 до 4 сек, на ваше усмотрение
  5. Запускаем новый разовый таймер с нужным периодом, и как таймер сработает, создаём спец эффект, и наносим урон юнитам в области эффекта
(это самый простейший способ, хоть на гуи можно сделать)

23

» WarCraft 3 / Одинаковые предметы

Похожие вопросы:

ответ
Проверка на наличие предмета, которая даёт ответ "да/нет", сделана за через цикл, который проверяет слоты юнита и даёт нужный ответ.
Функция, которая возвращала бы количество предметов одного типа, выглядела бы точно так же, но с небольшим изменением...
В идеале должна быть BJ-функция которая считает число предметов, а та которая проверяет есть ли он вообще - должна была бы проверять вернётся ли предыдущая функция число больше 0, или нет... Но увы, так не сделали. Поэтому надо делать всё самому.
. . .
Проходишься циклом по слотам и считаешь предметы нужного типа, если это число больше или равно нужному тебе - то... ок ок
ответ
N7 Molot:
Получает нужный предмет, фиксируем через переменную целогику/реал (разницы нет) значение +1. Таким образом если переменная будет ровняться к примеру 2, выдаем функцию и обнуляем переменную.
ответ
поиск юзаем, этот вопрос не раз поднимали и поднимают.
вот ссылка
ответ
~8gabriel8:
К сожалению, я нашёл лишь условие "количество предметов у юнита" о типе предметов, там нет и речи
Верно, мой косяк. Надо циклом перебирать предметы. Вот карта с триггером и скрин:
ответ
В чем проблема написать функцию подсчета итемов по их Id (циклом делается), а уже там делать условие. Не знаю уровень автора, поэтому напишу псевдокодом
Если КоличествоПредметов(u,'I000') >= 2 Тогда
	УдалитьИтем(u,'I000')
	УдалитьИтем(u,'I000')
	ДатьИтемЮниту(u,'I001')
КонецЕсли
u - юнит, с которым работаешь

23

» WarCraft 3 / 23 расы

Похожие вопросы:

ответ
quq_CCCP:
bigwolf2000, Чувак, тебе никто не скажет в чем дисинх даже если у него будет весь код перед глазами.
Нужно делать дебаги и играть с тестерами, чтобы отловить десинх.
Опен версию карту в студию если хотите помощи, все экстрасенсы не вышли из новогоднего отпуска...
Карту могу скинуть, но сюда или в лс?)
Steal nerves:
на данный момент ничего неизвестно, поэтому могут посоветовать читать статью дока про десинк
есть логгер xgm.guru/p/wc3/95728
и нужно знать jass
А это уже проблема =(
ответ
Могу понакидать карт с качественными (в какой-то мере) нестандартными расами, т.к 23 расы не особо хорошо сделаны.
ответ
"Недостаточно ресурсов памяти для обработки этой команды", получал такое когда вынуждал варик скушать больше гигабайта оперативки, но это завист от карты, в момент краша посмотри в диспетчере задач сколько war3.exe кушает
100% решение
Переустановить Шиндоус
ответ
~8gabriel8:
Тут есть карта board.w3x с примером подобного окна, как в 23 расы оно выглядит, не припомню.

23

» WarCraft 3 / Замена стандартной текстуры дерева

Похожие вопросы:

ответ
~8gabriel8:
PyCCKuu_4eJl, вот только это проделывал десятки раз. Карта в кампании, доставал из кампании и сохранял отдельно. С импортом игрался.
Не помогло.
Разобраться до конца не смог, пока выводы такие, что несмотря на замену текстуры дереву Нортренда, для модели пеньков этих деревьев используется стандартная текстура. Потому пеньки следует менять на пеньки тех деревьев, текстуру которых ставил деревьям Нортренда. Можно попробовать сделать замену для порченных деревьев на основе других стандартных деревьев, которым поставить порченную текстуру под стандартным для них именем. Правда, это всё опробовал на тестовой карте, а не той, в которой это нужно, может там ещё какие проблемы притаились.
Наверное, нашёл причину. В РО у деревьев указан Заменяемый идентификатор текстур, ему и следовало поставить идентификатор текстур, заменяемых импортом.
P. S. Как бы не так пока))

23

» WarCraft 3 / Оптимальна ли реализация?

Похожие вопросы:

ответ
Всё зависит от мелочей... если ты хочешь запаузить всех кто в данный момент находится на карте - это одно, если вообще ВСЕХ и ВСЁ - это другое...
Стомп застанит только тех, по кому попадёт... те кто появятся после - не будут застанены
Молотбурь застанит только тех, кого укажешь... кого не укажешь - не будут застанены
Пауза работать будет так же как молот, но так паузить баффы и прочее...
Можно собрать стан, который будет станить на 0.00 сек (вечно), а далее его снимать вручную... но тут надо учесть то что все станы должны будут это учитывать (или быть такими же - время таймерное).
. . .
По факту, когда я планировал перевести баффы на триггерную основу (тайминг), пришёл к выводу что мои баффы "обездвиживание" (сетка), "безмолвие" (сало), "обезоруживание" (дизарм - склад) и дополнительный бафф на "сковывание" (скорость поворота на 0), давали в сумме следующее:
  • нельзя двигаться и поворачиваться
  • нельзя кастовать
  • нельзя атаковать
В итоге это практически тот же стан... но с набором баффов в статусе (сетка и сало минимум)
ответ
Есть одна наработка - Dota helper, это dll которая подключается мемхаком к карте, дает много чего (в основном для доты), но там есть дабл клик, который реализован так: когда игрок нажал способность и пытается её кликнуть в область инетфейса, код из библиотеки мгновенно переносят курсор в позицию портрета, так как определение координат виджетов на экране уже есть, думаю автонаведение сделать вполне можно.
Но это уже C++ и поддержки нету, думайте и решайте все сами.

23

» WarCraft 3 / Прозрачный интерфейс.

Похожие вопросы:

ответ
Движок вц3 в чистом виде не отрисовывает игру под интерфейсом, средствами, которые можно импортировать в карту, это не излечить.
ответ
Maniac_91:
Да там просто текстуры на прозрачный фон заменили.
В карте я могу так сделать:
Для этого нужно в главном окне редактора нажать "Дополнительно" - "Игровой интерфейс", и искать там нужные текстуры. При нахождении заменить на импортированную прозрачную текстуру. Я для примера несколько нашёл:
Вот карта, если что-то непонятно. Я импортировал прозрачную текстуру большого размера (скачанную из местной статьи про альфа-тайлы), но лучше вообще один пиксель использовать для экономии места.
Если такой интерфейс нужен не в одной карте, а во всей игре, то, предполагаю, это надо менять файлы в MPQ-архивах (пути к файлам видно в игровом интерфейсе на скрине выше) или создавать свой патч.
это не в карте дело а в самой теме, я специально проверял на точно такой же версии как и в источнике ( в источнике не было темы )
ответ
полностью убрать интерфейс возможно с помощью этого , работает только на 1.26
ответ
Сам задал, сам ответил.
call BlzFrameSetParent выручает ситуацию, т.е. устанавливаешь предка, который не скрыт(любой созданный через blzCreateFrame, и к нему вешаешь.
ответ
Только редачить положение стандартных, чтобы создавать свои элементы нужен либо клиент Renderedge либо у ребят приближенных к Личу (Караулов и Анрайз), по факту есть библиотека dll позволяющая отрисовывать фреймы. но её в живую так и не видел. Это глубокие дебри чтобы туда влазить.
Ещё есть DGUI - прим. ScorpioT1000

23

» WarCraft 3 / Действие с задержкой

Похожие вопросы:

ответ
Пассивные способности позволяют аттачить спецэффекты. Вместо триггерного создания этого эффекта, быть может, достаточно дать абилку предмету, которая даст такой спецэффект? Если не ошибаюсь эффект таким образом может дать любая пассивная способность(во всяком случае точно дают Сфера(способность мага без коня у людей) и способности повышения характеристик предмета(в т.ч. защиты и атаки)) где что прописывать посмотрите в способности Сфера.
ответ
тогда скил тупит чего-то(у меня также всё кроме иконки и бафа но скил работает)
ответ
~8gabriel8:
PT153:
Потому что число 0.01, сложенное 10 раз, меньше 0.1.
Выводи число следующим кодом, где r - твоё real число.
call DisplayTimedTextToPlayer(GetLocalPlayer(), 0., 0., 5., R2SW(r, 0, -1))
PT153:
у парня проблемы с алгоритмом, в какой вселенной 0.01 * 10 не 0.1?
В компьютерной. И да, 0.01 * 10 тоже может быть не равно 0.01 + ... + 0.01. Потому что складываются и умножаются real по-разному.
Hate, надо просто использовать целочисленные, или пользоваться ==, в JASS == округляет числа для сравнения (!= не округляет).

Пороверил разные варианты, сразу упомяну, что с целочисленными всё огонь, просто какие-то другие воспоминания с ними всплывали.
PT153, сначала не понял, зачем мне твоя строчка, она всего лишь выдавала 0.1 вместо 0.100, но тестировал разные варианты и всё прояснилось. Если задавать шаг 1.0, то всё исправно считается до 10.0, если задавать шаг 0.2, то всё считается до 2.2 и отображается ровно, но если сделать шаг 1.01, то вот тут и появляется то, ради чего ты эту строчку дал.
Именно с дробной частью косяк, и теперь не знаю как выбрать лучший ответ, по идее у тебя в каждом комментарии полезная информация. Просто объединил их в итоге.

Hate:
сначала прибавляет, а затем проверяет, потом удивляется почему 0.11
Обычно просто отшучиваюсь на подобные комментарии, но сейчас так всё грустно в нём, что не смогу.

23

» WarCraft 3 / Как заставить...

Похожие вопросы:

ответ
Периодическое событие
Условия там всякие
Боевая единица отдать приказ (точка) - Двигаться в (позиция юнита со смещением на 100-200 с (поворотом боевой единицы) градусов)
По памяти написал
А если имелось в виду толкать юнита то тригерно двигаем в точку с полярным смещением принцип тот же.
ответ
В способности "Канала" измените id на другой спелл, допустим "holybolt", и потом триггерно заставте использовать этот спелл. Старайтесь дать id спелла, который похож на ваш по воздействию. Типа Цель-Юнит, Цель-Точка или Цель-Объект.
ответ
Сергей4, высоту нельзя указать отрицательной.
Очевидно, точка-корень, которая отвечает за положение модели указана над землёй для этой анимации.
Тебе придётся редактировать модель. Это недолго.
ответ
PyCCKuu_4eJl:
Как вариант, раз вы не паузите юнита, он может заагриться на кого-то и проигрываемая вами анимация сбросится на анимацию атаки.
Он и правую кнопку в землю нажать может и всё сбросится.
Я уже решил проблему ускорением и новым таймером, хотя всё равно смотрится так себе, но работает.
Анимация вращения "как у акса" но была с названием "spell, slam" поэтому не мог её к вихрю прикрутить.
ответ
От лица игрока? Если версия меньше 1.31, то никак.
C 1.31.
native BlzDisplayChatMessage                       takes player whichPlayer, integer recipient, string message returns nothing

23

» WarCraft 3 / Видеоролики

Похожие вопросы:

ответ
Там обычный mp4/divx, можно открыть любым видеоплеером, расширение mpq просто от балды.